내장 모듈
✒️ 2025-05-26 14:18 내용 수정
Node.js 교과서 개정 3판 내용 정리 추가
fs 모듈
- 파일 시스템(fs) 모듈은 파일 시스템에 접근해서 파일을 생성, 읽기, 수정, 삭제를 할 수 있다.
// 파일 시스템 모듈 가져오기
const fs = require('fs');
// 현재 명령어를 실행하는 콘솔 기준 디렉터리의 파일 읽어오기 - 배열로 반환됨
let fileList = fs.readdirSync('.');
console.log(fileList);
// 파일 리스트를 텍스트에 한 줄씩 작성
let text = '';
fileList.forEach((el) => {
text += el + '\n';
})
// 파일 생성
fs.writeFileSync('test.txt', text);
// 파일 이름 변경
fs.renameSync('test.txt', 'newTest.txt');
// 파일 삭제
fs.unlinkSync('newTest.txt');
| 메서드 | 설명 |
|---|---|
readFile() |
파일을 읽어옴 |
writeFile() |
파일 생성 |
access() |
폴더나 파일에 접근 가능한지 확인 |
| 권한이 없으면 에러 발생 | |
mkdir() |
폴더 생성(리눅스의 mkdir와 동일) |
| 이미 폴더가 있으면 에러 발생. access로 먼저 체크 필요 | |
open() |
파일의 아이디를 가져옴 |
| 파일이 없으면 파일을 생성하고 아이디를 가져옴 | |
rename() |
파일 이름 변경 |
readdir() |
폴더 내의 내용물 확인(리눅스의 ls와 유사). 배열로 반환됨 |
unlink() |
파일 삭제 |
rmdir() |
폴더 제거 |
| 폴더 안에 파일들이 있으면 에러 발생 |
// fs 모듈
const fs = require('fs');
// 파일 읽어오기
fs.readFile('./파일이름', (error, data) => {
// callback함수 내용
if (eeror) { // 에러가 생기면
throw error;
}
console.log(data);
});
// 파일 작성하기
fs.writeFile('./파일이름', '작성내용', (error) => {
// callback 함수
});
// 파일 접근 가능 확인
// constant.F_OK : 파일 존재 여부
// constant.R_OK : 읽기 권한 여부
// constant.W_OK : 쓰기 권한 여부
fs.access('파일이름', 옵션, callbackFn); // 권한이 없으면 에러 발생
// 폴더 생성
fs.mkdir('경로이름', callback); // 이미 폴더가 있으면 에러 발생. access로 먼저 체크
// 파일 아이디
// w : 파일 작성
// r : 파일 읽기
// a : 기존 파일에 추가
fs.open('파일이름', 옵션, callback);
// 파일 이름 변경
fs.rename('원본경로/이름', '새경로/이름', callbackFn);
// 파일 삭제
fs.unlink('파일이름', callbackFn);
// 폴더 내용물 확인
fs.readdir('경로이름', callbackFn);
// 폴더 삭제
fs.rmdir('경로이름', callbackFn);
- 파일 시스템의 동기 메서드는 기존 메서드 이름 뒤에 Sync가 붙으며, Sync가 없으면 비동기 메서드다.
- 동기와 비동기 참고.
// 동기 처리
console.log(1);
let result1 = fs.readFileSync('./test.txt', 'utf8'); // readFileSync로 동기 메서드
console.log(result1);
console.log(3);
// 비동기 처리
console.log('------async-----');
console.log(1);
fs.readFile('./test.txt', 'utf8', (error, result) => { // readFile로 비동기 메서드
console.log(result);
});
console.log(3);
OS 모듈
- 운영체제의 정보를 가져오며, 컴퓨터 내부 자원에 접근하는 경우 사용한다.
- 일반적인 웹 서비스 제작 시엔 잘 사용하지 않지만 운영체제 별로 다른 서비스를 제공할 때 사용한다.
// 컴퓨터 스펙 확인을 위한 모듈 가져오기
const os = require('os');
console.log(os.cpus()); // 컴퓨터의 core 정보 확인
| 메서드 | 설명 |
|---|---|
os.arch() |
프로세서 아키텍처(x64, arm 등) |
os.platform() |
운영체제의 플랫폼 정보(win32, linux 등) |
os.type() |
운영체제 종류 |
os.uptime() |
운영체제 부팅 후 흐른 시간(초) |
os.hostname() |
컴퓨터 이름 |
os.homedir() |
홈 디렉터리 경로 |
os.tmpdir() |
임시 저장 파일 디렉터리 경로 |
os.cpus() |
컴퓨터의 코어 정보 |
os.freemem() |
사용 가능한 메모리(RAM) |
os.totalmem() |
전체 메모리 용량 |